package com.itany.service;

import com.itany.entity.User;
import com.itany.mapping.UserMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    //数据层对象
    //对象的管理交给容器
//    UserMapping userMapping=new UserMapping();
//    AccountMapping accountMapping=new AccountMappingImpl() {
//    };
    @Autowired//从容器中获得这个对象 相当于    UserMapping userMapping=context.getBean("userMapping")
            UserMapping userMapping;
//    注册
    public String registUser(User user){
//    保证用户名长度在3-10位字符，用户密码长度4位数字
        String name=user.getName();
        if(name==null||name.trim().equals("")){
            return "用户名为空";
        }
        boolean f1=name.matches(".{3,10}");
        String pwd=user.getPwd();

        if(pwd==null||pwd.trim().equals("")){
            return "密码为空";
        }
        boolean f2=pwd.matches("[0-9]{4}");

        if(!f1 || !f2){
            if(!f1){
                return "用户名不符合要求";

            }
            if(!f2){
                return "密码不符合要求";

            }
        }
        //判断是否已经注册
        if(userMapping.selectUser(user)!=null){
//            System.out.println("用户已存在");
            return "用户已存在";
        }
        //判断正常注册该用户
        boolean result=userMapping.addUser(user);
        return result?"注册成功":"注册失败";

        //放一起判断

    }public User login(User user) {
        return userMapping.selectUser(user);
    }

    // 获得所有用户信息
    public List<User> showUsers() {
        return userMapping.selectAllUser();
    }
    //  修改用户信息
    public User updateUser(User user){
        /*判断用户是否存在，若不存在返回null
        * 获得所有用户，遍历每个用户，获取用户名，判断跟user中的是否相等
        * */
        List<User> list =userMapping.selectAllUser();
        boolean f=false;

        for(User u:list){
            if(u.getName().equals(user.getName())){
                /*
                 * 2.若用户存在，则修改密码返回user对象
                 */
                u= userMapping.updatePwd(u,user.getPwd());
//                u.setPwd(user.getPwd());
                return u;

            }
        }
        //用户不存在
        return null;
    }

    //查找指定用户
    public User searchUserByName(String name){
        List<User> list = userMapping.selectAllUser();
        for(User u:list){
            if(u.getName().equals(name)){
                return u;
            }
        }
        return null;
    }

    public Boolean deleteUser(User user){
        List<User> list =userMapping.selectAllUser();
        for (User u:list){
            if(u.equals(user)){
                boolean f=userMapping.deleteUser(u);
                return f; //f?"删除成功":"当前没有要删除的用户，删除失败";
            }
        }
        return  false;//"删除失败";
    }

}

//    登录

